package com.wtone.platform.gat.images.gat.service;

import com.wtone.platform.gat.images.gat.model.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @Author: aiLin
 * @Date: 2020/9/27 11:35
 * @desc: 订阅发布接口
 */
public interface SubscribesService {

    /***
     * 订阅接口 （提供给上级订阅）
     * @param subscribeListObject
     * @return
     */
    public ResponseStatusListModeObject subscribes(@RequestBody SubscribeListObject subscribeListObject);


    /***
     * 取消订阅
     * @param SubscribeID （订阅标识符Id）
     * @param subscribeNotific
     * @return
     */
    public ResponseStatusObject cancelSubscribeID(@PathVariable("SubscribeID") String SubscribeID, @RequestBody SubscribeObjects subscribeNotific);

    /***
     * 删除订阅
     * @param IDList 键为IDList，值为用英文半角分号”,”分隔的字符串 ?IDList=330101020001032017113010580006371，330101020001032017113010580006372
     * @return
     */
    public ResponseStatusListModeObject deleteSubscribeID(@RequestParam(name = "IDList") String IDList);


    /***
     *  多条件查询订阅信息
     * @param SubscribeID
     * @param ApplicantName
     * @param ApplicantOrg
     * @param BeginTime
     * @param EndTime
     * @param Title
     * @param SubscribeDetail
     * @param ResourceClass
     * @param ReportInterval
     * @param Reason
     * @param OperateType
     * @param SubscribeStatus
     * @param SubscribeCancelOrg
     * @param SubscribeCancelPerson
     * @param CancelTime
     * @param CancelReson
     * @param ResultImageDeclare
     * @param ResultFeatureDeclare
     * @param TabID
     * @return
     */
    public SubscribeListObject querySubscribeID(
            @RequestParam(name = "SubscribeID") String SubscribeID,
            @RequestParam(name = "ApplicantName") String ApplicantName,
            @RequestParam(name = "ApplicantOrg") String ApplicantOrg,
            @RequestParam(name = "BeginTime") String BeginTime,
            @RequestParam(name = "EndTime") String EndTime,
            @RequestParam(name = "Title") String Title,
            @RequestParam(name = "SubscribeDetail") String SubscribeDetail,
            @RequestParam(name = "ResourceClass") String ResourceClass,
            @RequestParam(name = "ReportInterval") String ReportInterval,
            @RequestParam(name = "Reason") String Reason,
            @RequestParam(name = "OperateType") String OperateType,
            @RequestParam(name = "SubscribeStatus")String SubscribeStatus,
            @RequestParam(name = "SubscribeCancelOrg")String SubscribeCancelOrg,
            @RequestParam(name = "SubscribeCancelPerson")String SubscribeCancelPerson,
            @RequestParam(name = "CancelTime")String CancelTime,
            @RequestParam(name = "CancelReson")String CancelReson,
            @RequestParam(name = "ResultImageDeclare")String ResultImageDeclare,
            @RequestParam(name = "ResultFeatureDeclare")String ResultFeatureDeclare,
            @RequestParam(name = "TabID")String TabID);

    /***
     * 订阅任务修改
     * @param subscribeListObject
     * @return 消息体中SubscribeID必填，否则操作无效
     */
    public ResponseStatusListModeObject updateSubscribeID(@RequestBody SubscribeListObject subscribeListObject);
}


